package com.wuwei.tms.pojo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * <p>
 *
 * </p>
 *
 * @author wuwei
 * @since 2024-01-03
 */
@TableName("t_tool")
@Data
@ApiModel(value = "t_tool", description = "")
public class Tool implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    @ExcelIgnore
    private Long id;

    @ColumnWidth(13)
    @ExcelProperty(value = "工具编号", index = 3)
    private Long barcode; //工具编号

    @ColumnWidth(13)
    @ExcelProperty(value = "工具件号", index = 1)
    private String partNo;

    @ColumnWidth(13)
    @ExcelProperty(value = "工具序号", index = 2)
    private String serialNo;

    @ColumnWidth(20)
    @ExcelProperty(value = "工具名称", index = 0)
    private String name;

    @ColumnWidth(13)
    @ExcelIgnore
    private String modelNo;

    @ExcelProperty(value = "存放位置", index = 4)
    private String storage;

    @ApiModelProperty("0表示正常，1表示隔离，2表示报废")
    @ExcelIgnore
    private Integer status;

    @ExcelIgnore
    private String vender;

    @ExcelIgnore
    private Float price;

    @ApiModelProperty("t_user表的empno")
    @ExcelIgnore
    private Long createBy;

    @ExcelIgnore
    private LocalDateTime createTime;

    @ExcelIgnore
    @ApiModelProperty("t_user表的empno")
    private Long editBy;

    @ExcelIgnore
    private LocalDateTime editTime;

    @ExcelIgnore
    private String remark;

    /**
     * 工具有4种
     * 1.计量工具，标记为1，每个工具都有单独的1个号，借用时需要检查有效期，可以帮别人还
     * 2.常用工具，标记为2，每个工具也都有单独的1个号，借用时不需要检查有效期，可以帮别人来还
     * 3.消耗品，标记为3，这种工具有十几个或者几十个，这几十个都有同一个号，借用时都刷同一个号，谁借的谁来还
     * 4.航材，标记为4，这种工具借了还回来的时候数量会减少，比如原来有40个，借了4个，还回来的时候虽然还了，但是已经不能用，所以总的数量会变成40-4=36，也是谁借的谁还
     */
    @ExcelProperty(value = "类型", index = 6)
    @ApiModelProperty("comsumeFlag表示该工具的类型，该值等于t_tool_type表的value，计量工具是1，常用工具是2，消耗品是3，航材是4")
    private Integer consumeFlag;

    @ExcelIgnore
    private Integer userableNum;//库内工具的总数,比如当工具总数是10，库内数量是5，代表一共有10个工具，借出去5个，库房内还有5个

    @ExcelIgnore
    private LocalDate lastInspDate; //上次送校的日期

    @ExcelIgnore
    private LocalDate  expireDate; //工具过期的日期

    @ExcelIgnore
    private String certificate; //工具校验证书

    @ExcelIgnore
    private String imageSrc;

    @ExcelProperty(value = "数量", index = 5)
    private Integer allNumber;//工具总数

}
